Top 10k strings from Supercode (1984)(CP Software).tzx in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [TZX] (TOSEC-v2007-01-01) /

Back to the directory listing

   7 ;"Routine in ROM";
   3 THIS ROUTINE IS NON-RELOCATABLE
   3 FFFFFFFFFFFFFFFFFF
   2 \##N#F#"]\"
   2 [}\r#s#N#F#
   2 R"E\*S\###"
   2 Press ENTER to Expand the Whole Program 
   2 No. STATEMENTS :
   2 No. LINES      :
   2 No. Bytes:
   2 Length of Program Only:!
   2 LINE NO:NOW RENUMBER PROGRAM
   2 GGGGGGGGGGGGGGGGGGGG
   2 First Byte:
   2 FROM LINE NO:TO LINE NO:AFTER LINE NO:NOW RENUMBER PROGRAM
   2 FFFFFFFFFFFF
   2 ENLARGE REM
   2 EEEEEEEEEE
   2 BLOCK COPY
   2 Auto-start Line No:
   2 Array Name:
   2 A,B,C$,DUR:
   2 +-*]\"[\*Q\
   2 ++F+N+++"]\*S\~
   2 ++F+N+++"]\
   2 *]\###q#p##"]\
   2 *S\##"]\^#V
   2 #T]##N#F#~
   2 "  If you choose 
   2           
   1 existing line no:,the  next valid line no: is used.Cal -culated GOTOs etc are highlit.":
   1 at any  position on the screen: ie, to  find the CODE of the character  printed 
   1 __________";
   1 ZX SPECTRUM MACHINE CODE TOOLKIT
   1 This is Line #";Z
   1 The Recording was fine!
   1 TO SEE HOW THIS WAS DONE, EXIT &   EXAMINE LINES 9278 TO 9286   
   1 Start address:
   1 SUPERSOFT SYSTEMS  
   1 SUPERSOFT  SYSTEMS
   1 SUPERCODE2
   1 SUPERCODE1
   1 SUPERCODE TOOLKIT
   1 SAVE'";C$(
   1 S-CODE 16K
   1 S U P E R C O D E
   1 Routine Starts at ";A
   1 Routine Length is ";B;" bytes
   1 Routine Ends at   ";A+B-1
   1 ROUTINE NO:
   1 ROUTINE  ";C$'" IS NOW CALLED
   1 RANDOMIZE USR63950
   1 RANDOMIZE USR 3190
   1 RANDOMIZE USR ";A
   1 Please wait-only 50 seconds left
   1 PRINT;: RANDOMISE USR 60222
   1 POKE NUMBERS 
   1 No. OF EXTRA BYTES::}\_:~\W:
   1 No. OF EXTRA BYTES:
   1 L);"'CODE ";A;",";B
   1 INDEX - PAGE ";(Z-1
   1 HIRES SCROLL-UP
   1 GGGGGGGGGGGGGGGGGGGGGGGG
   1 Freddy A Vachha  &  Vic B Rumsey
   1 Freddy A Vachha   Vic B Rumsey
   1 FFFFFFFFFFF
   1 ERROR CODE: ";N$:
   1 Created with Ramsoft MakeTZX
   1 CP Software Presents
   1 C/D/E/I/N/P/Q/R/S/X
   1 ANY OTHER KEY TO START
   1 ANY OTHER KEY TO RESTART 
   1 ANY OTHER KEY TO GO ON
   1 ANY OTHER KEY 
   1 ;C$;" CODE ";A;",";B:
   1 ;"top left hand corner of the box"
   1 ;"__________
   1 ;"You can scroll attributes too   by using this routine & then    No: 37 - 40, after defining an  appropriate box & setting the   Attr Value to 63."
   1 ;"WRAP-AROUND POKE ";A+16
   1 ;"WRAP-AROUND POKE ";
   1 ;"WRAP AROUND  POKE ";A+13
   1 ;"To say the 2 byte equivalent of X is L(Less)/M(More) sig: bytes means that 256 * M + L = X .    This routine permits instant    conversion of a number from 0 - 65535 to its 2-byte equivalent. To convert X into its 2-byte    equivalent, enter RANDOMISE X.  
   1 ;"To save this routine, use";
   1 ;"To renumber lines starting with S using an interval I, first    POKE 59580,I: POKE 59582,S-256* INT(S/256):POKE59583,INT(S/256) All GOTOs,GOSUBs,LISTs,LLISTs,  RESTOREs,SAVE...LINEs & #Ns are renumbered(except for decimal/  calculated arguments & REMs).If the arg
   1 ;"To help with PRINTing/PLOTting, this routine prints a BRIGHT ON /OFF checkerboard on the screen"
   1 ;"To delete all lines from a to b POKE 23728, a - 256*INT(a/256)  POKE 23729, INT(a/256)          RANDOMISE b":
   1 ;"To call this routine, use";
   1 ;"This routine will switch all    flashing squares to steady &    vice versa. This is hence very  different from routines 32/33."
   1 ;"This routine will switch all    bright squares to normal &      vice versa. This is hence very  different from routines 34/35."
   1 ;"This routine waits till a key   (whose CODE will be put in L)is pressed.":
   1 ;"This routine undoes the effect  of #98, to allow lines of a     CONFUSEd program to be EDITed/  altered.":
   1 ;"This routine swops all chara-   cters of a given CODE with all  characters of a 2nd given CODE. POKE 63903, Old CODE            POKE 63905, New CODE"
   1 ;"This routine simulates a power- off: ie, it not only does NEW   but also CLEARs RAMTOP to its   original value, clears the      entire memory & resets UDGs &   System VARs.":
   1 ;"This routine shortens & speeds  up your program by deleting     all REM statements in it. Also  see #41,#82,#90 & #100.":
   1 ;"This routine replays what #77   recorded. It is probably best   to use your cassette-recorder   (MIC socket) to amplify the     sound.":
   1 ;"This routine replaces numbers   in the program by VAL String,   which saves space but reduces   speed. 0 is replaced by NOT PI. Also see #41,#64,#82,#90":
   1 ;"This routine prints the address of the first character in the   line the cursor points to.":
   1 ;"This routine prints out both    the no: of lines & statements   in the program. If you try this out, use GOTO 9001 to restart."
   1 ;"This routine prints out a full  analysis of memory contents,    starting at the address whose   less & more significant bytes   (see #61) have been POKEd into  62866 & 62867 respectively. The 4 columns are address, contents in decimal & hex & CHR$ (where  printable).":
   1 ;"This routine places a random #  pair in the System Variable     SEED ( PEEK 23670 & 23671 )." ;
   1 ;"This routine lists all          (1) Numeric variables           (2) String variables            (3) Numeric Arrays              (4) String Arrays               (5) FOR..NEXT control variables"  
   1 ;"This routine inserts a given    number into a block of memory.  POKE 63796, No: of bytes        POKE 63798 (less sig) & 63799     (more sig), Start Address     POKE 63801, No: to be inserted"
   1 ;"This routine expands programs   so that there is exactly one    statement per line (except in   IF..THEN lines).In reply to the prompt, enter the no: of the    line you want expanded, or just ENTER if you want the entire    program expanded. You must use  #60 after calling this routine.":
   1 ;"This routine enables you to     determine the 
   1 ;"This routine deletes hidden     colour items, thus saving space Also see #64,#82 & #100":
   1 ;"This routine decodes tapeheader information & prints out a full analysis (name, address, type,  length & auto-start details.":
   1 ;"This routine converts hex no:s  to their decimal equivalents.   It clears the screen & prompts  'H:' - now ENTER the hex no:.   Only the last 4 hex digits will be converted. The routine auto- repeats. Enter 'Q' to quit to   BASIC. When called from #92(Hex Loader) only the last 2 digits  are considered.":
   1 ;"This routine converts decimal   no:s from 0 to 65535 to hex.    It clears the screen & prompts  'D:' - now ENTER the dec no:.   Error message 6 results if the  no: was out of range. The rou-  tine autorepeats. Enter 'Q' to  quit to BASIC.":
   1 ;"This routine contracts programs into the minimum no: of lines,  by combining lines wherever it  is logically possible. Speed is also increased. See also #41,   #64, #90 & #100":
   1 ;"This routine allows hex input   into RAM.POKE the less/more sig (see #61) bytes of the first    address to be changed into the  system-var DEFADD (23563/4).    POKE 65360/61 with the start    address of routine #63(Hex-Dec) which must also be in memory.":
   1 ;"This routine allows a block of  lines to be relocated within a  BASIC program.In order to shift lines 4200 till 6745 so they    appear after2200 in the listing respond 4200,6745 & 2200 to the auto-prompts.The new lines will all have number 0.Now call #60  to renumber & #57 to delete the old lines. Fully errorproofed.":
   1 ;"The free space F from the last  Variable to RAMTOP is printed.  By the way, you can use POKE    23637,203:POKE 23638,92:SAVE    'Name'CODE 23552,RAMTOP-23550-F to save your program disguised  as code - it will autostart at  the first line.";
   1 ;"The Toolkit contains 
   1 ;"THIS IS AN EXAMPLE OF THE NEW   CHARACTER SET.POKE 23606/7 WITH THE LESS/MORE SIGNIFICANT BYTES OF THE START ADDRESS LESS 256 - CURRENTLY 0 & 223. TO RETURN TO THE NORMAL SET,POKE 23607,60.":
   1 ;"SCROLL-OFF  POKE ";A+16
   1 ;"SCROLL-OFF  POKE ";
   1 ;"SCROLL-OFF   POKE ";A+13
   1 ;"Routines 94 to 97 change the    case (upper/lower)of strings or of the entire listing ( except  strings),as specified.Note that an effective way of switching   case from within programs is to POKE 23658,0 (LO) or 8(HI).":
   1 ;"Routine in ROM":
   1 ;"PRINT AT co-ordinates of the";
   1 ;"POKE 64884, Overall Paper Col"
   1 ;"POKE 64859, Overall Ink Colour"
   1 ;"POKE 64829, Character Code      POKE 64831, Box height          POKE 64834, Box Width           POKE 64832 & POKE 64835 with    the PRINT AT co-ordinates for   the top-left hand corner of     the box."
   1 ;"POKE 64682, Duration            POKE 64693, Frequency 1         POKE 64702, Frequency 2"
   1 ;"POKE 64648, Frequency           POKE 64649, Span                POKE 64651, Duration            POKE 64670, 28(UP) or 29(DOWN)"
   1 ;"POKE 63011, Pitch Decrement     POKE 63012, Number of notes     POKE 63014 & 63015, Pitch            (less/more sig)            POKE 63017 & 63018, Duration         in ms (less/more sig)"
   1 ;"POKE 63001 & 63002 with the     Pitch value (less/more sig)     POKE 63004 & 63005 with the     Duration in ms (less/more sig)"
   1 ;"POKE 60006, Duration (1-127)    POKE 60020, Colours  (0-7)      POKE 60029, Line Space (1-255)  
   1 ;"POKE ";A+7
   1 ;"POKE ";A+6
   1 ;"POKE ";A+4
   1 ;"POKE ";A+1
   1 ;"No GOSUBs or GOTOs are changed- use #60 if you need that done.  If L is the first Line to be    renumbered, & I the Interval    POKE 64711, I - 256*INT(I/256)  POKE 64712, INT(I/256)          POKE 64714, L - 256*INT(L/256)  POKE 64715, INT(L/256)":
   1 ;"Move the cursor to the required line & then call this routine.  You will be in EDIT mode, but   with the cursor at the END of   the line.":
   1 ;"Make the following POKEs:-      INK    (63732)  PAPER (63738)   FLASH  (63744)  BRIGHT(63750)   INVERSE(63756)  OVER  (63762)   AT (63768,63771)CHR$  (63774)"
   1 ;"Less Sig  More Sig":
   1 ;"In order to scroll a table of   data > 22 lines long without    stopping, use the command POKE  23692,x where x is the no: of   lines to be scrolled. To scroll 'forever' use POKE 23692,255    within the loop that generates  the lines.":
   1 ;"In order to print lists or text using all the 24 lines on the   screen, include POKE 23659,0    before each PRINT instruction.  At the end, POKE 23659,2. Use   PAUSE 0 to prevent the Scroll   command corrupting the screen.  PRINT #0 & PRINT #1 commands    are also usable.":
   1 ;"In order to make the first line of your program virtually non-  deletable (by making it #0)POKE 23755,0: POKE 23756,0. To do    this to other lines, first find their address X using routine   88, then POKE X-4,0: POKE X-3,0 The program will work provided  you do not GOTO/GOSUB/RESTORE   such lines.":
   1 ;"INVERSE SCRL POKE ";A+13
   1 ;"INTRODUCTION":
   1 ;"Having connected the EAR socket of the cassette-recorder to the Specrum, start PLAYing the tape ( Voice is best. Let Vol=max )  Enter CLEAR 32767:RANDOMISE USR 65290. All memory from 32768 to 65K is used. To replay, call    routine 78.":
   1 ;"Follow the prompts to expand a  REM statement (to accommodate   code) anywhere in the program,  by up to 9999 bytes":
   1 ;"Draw multipointed-stars & rings by first plotting a point near  the middle of the screen & then using DRAW X,Y,N  where X & Y   have magnitudes from 10 to 60   & N lies between 8000 & 9999.   You may need to experiment.":
   1 ;"Draw any closed figure on the   screen, then PLOT a point lying INSIDE it. POKE 59293 with the  Attribute value to be filled,&  then call this routine          
   1 ;"Corrupts the listing without    affecting program execution:    attempting to EDIT/alter lines  could be fatal (thus useful for program protection, as are #61/ #80).":
   1 ;"Call this routine at the start  of your program, say by having  as LINE 1, '1  RANDOMISE USR    60899'. Now if an error of the  type D:BREAK,H:STOP in INPUT or L:BREAK into program occurs the program will not stop but will  jump to the line number whose 2 byte equivalent is POKEd into   60952(lo) & 60953(hi).This line is initially 9495.":
   1 ;"Call this routine at the start  of your program, say by having  as LINE 1, '1  RANDOMISE USR    60826'. Now if an error occurs, (other than types 0:OK,8:END or 9:STOP) the program will not    stop but will jump to the line  number whose 2-byte equivalent  is POKEd into 60878(lo) & 60879 (hi)...initially 9495. For the  error code, PEEK 23681.":
   1 ;"By combining this routine with  No:s 37-40, joint scrolling of  attributes can be done. Define  a suitable box, use an Attr Val of 63 & call the Attr Scroll    routine(s) once for every 8     calls of this routine."
   1 ;"By POKEing 23606 & 23607 with   different numbers, a corrupted  character set is obtained. To   normalise, POKE 23606,0 : POKE  23607,60. Protect your program  with this, temporarily normal-  ising before each PRINTing.":
   1 ;"A Laser Zap routine can also be called,using 
   1 ;"1)Make line#1 a REM statement:   then POKE 23755,100. You can    RUN the program but not LIST it until you POKE 23755,0.        2)POKE 23636,150. To return to   normal, POKE 23636,92.         3)Use CONFUSE (#98) ,call #65 &  #66 to disable BREAKs, use CHR$ SCRAMBLE (#59) to scramble the  listing & #68 to create non-    deletable lines with 
   1 ;"----> ";
   1 ;", X - 256*INT(X/256)"'" POKE ";A+2
   1 ;", New Attribute Val";
   1 ;", INT(X/256)":
   1 ;", Box width";
   1 ;", Box height"
   1 ;" & POKE ";A+3
   1 7,13;: LET Z=
   1 7,13, you must enter PRINT 
   1 60039 Now Z is the required code.":
   1 57344----(8118)----65461
   1 23670 & 23671 now hold the less significant & more signi-  ficant byte values respectively":
   1 1983 SUPERSOFT SYSTEMS    
   1 ,"VARIABLES SEARCH/LIST",1
   1 ,"UNI-NOTE SOUND-GEN",5
   1 ,"UNI-BEEP SIMULATOR",15
   1 ,"UNCONFUSE LISTING",1
   1 ,"U-CASE STRINGS",1
   1 ,"U-CASE PROGRAM",1
   1 ,"TAPE HEADER READER",1
   1 ,"SUPER-RENUMBER",1
   1 ,"STAR/TORUS DRAW",1
   1 ,"SHUTTER-SCROLL RIGHT",10
   1 ,"SHUTTER-SCROLL LEFT",10
   1 ,"SCREEN-PRINT",1
   1 ,"SCREEN STORE",1
   1 ,"SCREEN SEARCH",1
   1 ,"SCREEN OVERPRINT",1
   1 ,"SCREEN INVERT",1
   1 ,"SCREEN GRID",1
   1 ,"SCREEN FILL",1
   1 ,"SCREEN EXCHANGE",1
   1 ,"SCIFI CHARACTER SET",1
   1 ,"RIPPLE-SCROLL RIGHT",255
   1 ,"RIPPLE-SCROLL LEFT",255
   1 ,"REPLAY SOUND",0
   1 ,"REMKILL CONDENSER",1
   1 ,"RECORD SOUND",0
   1 ,"RANDOM NUMBER GENERATOR",20
   1 ,"PROTECT PROGRAM",1
   1 ,"PAPER CHANGE",1
   1 ,"PAINT-FILL",1
   1 ,"ON ERROR GOTO",1
   1 ,"ON BREAK GOTO",1
   1 ,"OBLIQUE SCROLL-OFF",1625
   1 ,"NON-DELETABLE LINES",1
   1 ,"MULTI-BEEP SIMULATOR",8
   1 ,"MONOCHROME PROGRAM",1
   1 ,"MEMORY AVAILABLE",1
   1 ,"LORES TOP 2/3 SCR-RGHT",255
   1 ,"LORES TOP 2/3 SCR-LEFT",255
   1 ,"LORES TOP 1/3 SCR-RGHT",255
   1 ,"LORES TOP 1/3 SCR-LEFT",255
   1 ,"LORES SCROLL-UP",24
   1 ,"LORES SCROLL-LEFT",33
   1 ,"LORES SCROLL RIGHT",33
   1 ,"LORES R-DIAG SCROLL",22
   1 ,"LORES MID 1/3 SCR-RGHT",255
   1 ,"LORES MID 1/3 SCR-LEFT",255
   1 ,"LORES LOW 2/3 SCR-RGHT",255
   1 ,"LORES LOW 2/3 SCR-LEFT",255
   1 ,"LORES LOW 1/3 SCR-RGHT",255
   1 ,"LORES LOW 1/3 SCR-LEFT",255
   1 ,"LORES L-DIAG SCROLL",22
   1 ,"LINE RENUMBER",1
   1 ,"LINE ADDRESS",1
   1 ,"L-CASE STRINGS",1
   1 ,"L-CASE PROGRAM",1
   1 ,"INK CHANGE",1
   1 ,"HIRES SW-DIAG SCROLL",190
   1 ,"HIRES SE-DIAG SCROLL",190
   1 ,"HIRES SCROLL-UP",175
   1 ,"HIRES SCROLL-RIGHT",255
   1 ,"HIRES SCROLL-LEFT",255
   1 ,"HIRES SCROLL-DOWN",200
   1 ,"HIRES NW-DIAG SCROLL",176
   1 ,"HIRES NE-DIAG SCROLL",176
   1 ,"HEX->DEC CONVERTER",1
   1 ,"HEX LOADER",1
   1 ,"FREE-SCROLLER",1
   1 ,"FLASH SWITCH",1
   1 ,"FLASH ON",1
   1 ,"FLASH OFF",1
   1 ,"EXPAND REM",1
   1 ,"EXPAND PROGRAM",1
   1 ,"DUAL-NOTE SOUND-GEN",10
   1 ,"DEC->HEX CONVERTER",1
   1 ,"CONTRACT PROGRAM",1
   1 ,"CONFUSE LISTING",1
   1 ,"COMPRESS NUMBERS",1
   1 ,"CLEAR ALL ",1
   1 ,"CHR$ SCRAMBLE",1
   1 ,"BRIGHT SWITCH",1
   1 ,"BRIGHT ON",1
   1 ,"BRIGHT OFF",1
   1 ,"BORDER EFFECTS",10
   1 ,"BLOCK MEMORY INSERT",1
   1 ,"BLOCK LINE DELETE",1
   1 ,"BLOCK LINE COPY",1
   1 ,"AWAIT KEYPRESS",1
   1 ,"ATTRIBUTE SCR-UP",40
   1 ,"ATTRIBUTE SCR-RIGHT",200
   1 ,"ATTRIBUTE SCR-LEFT",40
   1 ,"ATTRIBUTE SCR-DOWN",40
   1 ,"ATTRIBUTE FILL",1
   1 ,"APPEND STATEMENT",1
   1 ,"ANALYSE PROGRAM",1
   1 ,"ANALYSE MEMORY",1
   1 ,"ALL-RIGHT SCROLL",32
   1 ,"ALL-LEFT SCROLL",32
   1 ,"24-LINE PRINTING",1
   1 ,"2 BYTE CONVERTER",1
   1 , use a fresh  cassette - the routine is saved under the name ";
   1 , use GOTO 9001(not RUN)to restart the program."
   1 +A;", 26";
   1 *SUPERCODE
   1 '(exit).You willthen have the option of SAVEing the routine on tape,QUITting to BASIC or restarting."
   1 '" (1)At 10% Speed, using PAUSE"'" (2)At Full Speed"
   1 '"  To access the next routine in the Index, press '
   1 '"  To access a routine whose no: you know, press '
   1 '"  If you would like to have the details of this routine again,  press '
   1 '"  If you wish to return to the  Index, press '
   1 ' (repeat)"
   1 ' (number)":
   1 ' (index)"
   1 ' (continue)"
   1 "programs.This BASIC program letsyou list,test,customise,relocateSAVE & VERIFY routines easily - but the routines will work just as well if the program is absent"
   1 "This routine has now been saved.Replay it NOW to VERIFY. If the recording is bad, you will be   automatically returned to the   SAVE option via the Error-trap  routine."
   1 "The save MUST then be verified."
   1 "The code is from 57344 to 65461:it overwrites the first 12 UDGs.RAMTOP has been cleared to 57340"
   1 "The Index follows- input the no:of a routine for its description(incl all addresses & POKEs)& anoptional example.Get to know theMenu options ";:
   1 "That was the Laser Zap. Now for the Uni-Beep.":
   1 "POKEs necessary for tailormakingthe program to your specific    needs ) press '
   1 "4)Imbed  hidden colour CHR$ to   set INK=PAPER within non-delet- able lines:the listing vanishes5)Autostart by using SAVE Name$  LINE X. Let line X be 'LET ERR= 256*PEEK 23614 +PEEK 23613:POKE ERR,0:POKE ERR+1,0'. Any BREAK/ error will now cause a crash.":
   1 "#";N;": ";
   1 " Press any other key to restart."
   1 "  The routines run hundreds of  times faster than BASIC,& can becustomised easily. Do enjoy yoursuperb Z80 MachineCode Library!"
   1 "  Keep a written record of the  name, address & length of this  routine, as well as of all the  relevant POKEs. For details on  relocation, refer to the manual."
   1 "  If you have noted important   details ( address, length, any"
   1  swops the  current screen & the STOREd one A screen has 6912 bytes (24*32* 8, + 24*32 Attributes) & should be stored above RAMTOP (CLEARed downwards to make room).To have a screen from X-6911 to X use   POKE ";A+1
   1  saves a screen,
   1  recalls it. 
   1  messages"
   1  machinecode routines which you can call(using RANDOMIZE/PRINT USR) bothdirectly & from within your own"
   1  V.RUMSEY 
   1  ROUTINE # 65 HAS PREVENTED YOU  FROM BREAKING INTO THIS PROGRAM
   1  PRESS ANY KEY TO TURN THE PAGE 
   1  POKE 63951,Duration. To save it use SAVE 'ZAP'CODE 63950,26."
   1  POKE 23607, 223   
   1  OVERPRINT
   1  Loading Time:  
   1  F.VACHHA 
   1  - PRESS ANY KEY TO GO ON 
   1             
   1